package General;

import javax.swing.Icon;

import GUI.ElementoGrafico;

public abstract class Elemento extends Thread {

	protected int x;
	protected int y;
	protected ElementoGrafico EG;
	protected Juego game;

	/**
	 * Devuelve la primer coordenada (x) correspondiente
	 * a la posicion del elemento.
	 * @return un entero.
	 */
	public int getX() {
		return x;
	}

	/**
	 * Devuelve la segunda coordenada (y) correspondiente
	 * a la posicion del elemento.
	 * @return un entero.
	 */
	public int getY() {
		return y;
	}

	/**
	 * Modifica el valor de la primer coordenada correspondiente
	 * a la posicion del elemento.
	 * @param X valor a setear.
	 */
	public void setX(int X) {
		x = X;
	}

	/**
	 * Modifica el valor de la segunda coordenada correspondiente
	 * a la posicion del elemento.
	 * @param Y valor a setear.
	 */
	public void setY(int Y) {
		y = Y;
	}

	/**
	 * Metodo abstracto.
	 */
	public abstract void run();

	/**
	 * Modifica el elemento grafico de la clase.
	 * @param elemGraf valor a setear.
	 */
	public void setElementoGrafico(ElementoGrafico elemGraf) {
		EG = elemGraf;
	}
	
	/**
	 * Devuelve el elemento grafico de la clase.
	 * @return un objeto del tipo Elemento Grafico.
	 */
	public ElementoGrafico getElementoGrafico()
	{
		return EG;
	}
	
	/**
	 * Metodo abstracto. Cada clase que herede de Elemento 
	 * retorna una imagen correspondiente.
	 */
	public abstract Icon getImagen();

}
